<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>高效的find和findIndex的使用</title>
</head>
<body>
    
</body>
<script>
    /*
        前面学习了使用includes方法能够查找数据，当数据存在时会返回True
        但是其实这个方法也是有不灵的时候，它只能够用来判断查找值类型的，并不能够用来查找引用类型的数据
            值类型：  字符串，数字类型都是值类型，它存储的直接就是数据的值
            引用类型：  [],{} 数组，对象这类的都是引用类型  引用类型存放的都是数据的地址

        JS推出了 find 和 findIndex方法，  可以用来查找引用类型的数据
    */
    let lesson = [
        {name:'Vue.js'},
        {name:'Node.js'},
        {name:'Javescript'}
    ]
    console.log(lesson.includes("{name:'Vue.js'}"))  //false
    console.log(lesson.includes({name:'Vue.js'}))  // false
    //  可见  includes方法时查找不到引用类型的数据的  因为他要查找的数据，和原本的呃数据存放的是不同的地址，所以结果肯定是false
    // 类似于  let a = [] 和 let b = []  问你a和b是否相等，显然  他们是不等的 
    //   但是 如果是 let a = [] let b = a 这时候 a 和 b就是相等的
    
    let res = lesson.find((item)=>{
        return (item.name === 'Vue.js')
    })
    console.log(res)
    // 如果要查索引 可以直接使用findIndex
    let res1 = lesson.findIndex(item=>{
        return item.name === 'Vue.js'
    })
    console.log(res1)  // 0 返回了索引值为0
</script>
</html>